using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GraphicsResolution")]
	public class GraphicsResolution : MonoClass
	{
		public static List<GraphicsResolution> resolutions_ => MonoClass.smethod_7<Class271<GraphicsResolution>>(TritonHs.MainAssemblyPath, "", "GraphicsResolution", "resolutions_")?.method_25();

		public static List<GraphicsResolution> list => MonoClass.smethod_15<Class271<GraphicsResolution>>(TritonHs.MainAssemblyPath, "", "GraphicsResolution", "get_list", Array.Empty<object>())?.method_25();

		public static GraphicsResolution current => MonoClass.smethod_15<GraphicsResolution>(TritonHs.MainAssemblyPath, "", "GraphicsResolution", "get_current", Array.Empty<object>());

		public int x => method_11<int>("get_x", Array.Empty<object>());

		public int y => method_11<int>("get_y", Array.Empty<object>());

		public float aspectRatio => method_11<float>("get_aspectRatio", Array.Empty<object>());

		public GraphicsResolution(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GraphicsResolution(IntPtr address)
			: this(address, "GraphicsResolution")
		{
		}

		public static GraphicsResolution create(int width, int height)
		{
			return MonoClass.smethod_16<GraphicsResolution>(TritonHs.MainAssemblyPath, "", "GraphicsResolution", "create", new Class276.Enum20[2]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4
			}, new object[2] { width, height });
		}

		public static bool add(int width, int height)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "GraphicsResolution", "add", new object[2] { width, height });
		}

		public int CompareTo(object obj)
		{
			return method_11<int>("CompareTo", new object[1] { obj });
		}

		public new bool Equals(object obj)
		{
			return method_11<bool>("Equals", new object[1] { obj });
		}

		public new int GetHashCode()
		{
			return method_11<int>("GetHashCode", Array.Empty<object>());
		}
	}
}
